@import './Button.css';
@import './theme.css';

.react-aria-RangeCalendar {
	width: fit-content;
	max-width: 100%;
	color: var(--text-color);

	& header {
		display: flex;
		align-items: center;
		margin: 0 4px 0.5rem 4px;

		.react-aria-Heading {
			flex: 1;
			margin: 0;
			text-align: center;
			font-size: 1.375rem;
		}
	}

	.react-aria-Button {
		width: 2rem;
		height: 2rem;
		padding: 0;
	}

	& table {
		border-collapse: collapse;

		& td {
			padding: 2px 0;
		}
	}

	.react-aria-CalendarCell {
		width: 2.286rem;
		line-height: 2.286rem;
		text-align: center;
		border-radius: 6px;
		cursor: default;
		outline: none;
		forced-color-adjust: none;

		&[data-outside-month] {
			display: none;
		}

		&[data-pressed] {
			background: var(--gray-100);
		}

		&[data-focus-visible] {
			outline: 2px solid var(--highlight-background);
			outline-offset: -2px;
		}

		&[data-selected] {
			background: var(--highlight-background);
			color: var(--highlight-foreground);
			border-radius: 0;

			&[data-focus-visible] {
				outline-color: var(--highlight-foreground);
				outline-offset: -3px;
			}
		}

		&[data-selection-start] {
			border-start-start-radius: 6px;
			border-end-start-radius: 6px;
		}

		&[data-selection-end] {
			border-start-end-radius: 6px;
			border-end-end-radius: 6px;
		}
	}

	.react-aria-CalendarCell {
		&[data-disabled] {
			color: var(--text-color-disabled);
		}
	}

	.react-aria-CalendarCell {
		&[data-unavailable] {
			text-decoration: line-through;
			color: var(--invalid-color);
		}

		&[data-invalid] {
			background: var(--invalid-color);
			color: var(--highlight-foreground);
		}
	}

	[slot='errorMessage'] {
		font-size: 12px;
		color: var(--invalid-color);
	}
}
